using System;

namespace GoogleEarthClasses.Entities
{
    [Serializable]
    public class EImageData
    {
        #region Private Members
        Int32 _imageId;
        DateTime _createdOn;
        string _createdBy;
        EAsset _asset;
        string _contentFormat;
        string _contentStorageType;
        byte[] _contentBinary;
        string _contentPath;
        string _imageSourceType;
        DateTime _imageSourceTime;
        string _imageSourceModel;
        long _longitude;
        long _latitude;
        long _altitude;
        #endregion Private Members

        #region Properties
        public Int32 ImageId
        {
            get { return _imageId; }
            set { _imageId = value; }
        }
        public DateTime CreatedOn
        {
            get { return _createdOn; }
            set { _createdOn = value; }
        }
        public string CreatedBy
        {
            get { return _createdBy; }
            set { _createdBy = value; }
        }
        public EAsset Asset
        {
            get { return _asset; }
            set { _asset = value; }
        }
        public string ContentFormat
        {
            get { return _contentFormat; }
            set { _contentFormat = value; }
        }
        public string ContentStorageType
        {
            get { return _contentStorageType; }
            set { _contentStorageType = value; }
        }
        public byte[] ContentBinary
        {
            get { return _contentBinary; }
            set { _contentBinary = value; }
        }
        public string ContentPath
        {
            get { return _contentPath; }
            set { _contentPath = value; }
        }
        public string ImageSourceType
        {
            get { return _imageSourceType; }
            set { _imageSourceType = value; }
        }
        public DateTime ImageSourceTime
        {
            get { return _imageSourceTime; }
            set { _imageSourceTime = value; }
        }        
        public string ImageSourceModel
        {
            get { return _imageSourceModel; }
            set { _imageSourceModel = value; }
        }
        public long Longitude
        {
            get { return _longitude; }
            set { _longitude = value; }
        }
        public long Latitude
        {
            get { return _latitude; }
            set { _latitude = value; }
        }
        public long Altitude
        {
            get { return _altitude; }
            set { _altitude = value; }
        }

        #endregion Properties

        #region Constructors
        public EImageData()
        {
            _imageId = Int32.MinValue;
        }
        public EImageData(Int32 imageId)
        {
            _imageId = imageId;
        }
        public EImageData(Int32 imageId, DateTime createdOn, string createdBy, EAsset asset, string contentFormat, string contentStorageType, byte[] contentBinary, string contentPath, string imageSourceType, DateTime imageSourceTime, string imageSourceModel, long longitude, long latitude, long altitude)
            :this(imageId)
        {
            _createdOn = createdOn;
            _createdBy = createdBy;
            _asset = asset;
            _contentFormat = contentFormat;
            _contentStorageType = contentStorageType;
            _contentBinary = contentBinary;
            _contentPath = contentPath;
            _imageSourceType = imageSourceType;
            _imageSourceTime = imageSourceTime;
            _imageSourceModel = imageSourceModel;
            _longitude = longitude;
            _latitude = latitude;
            _altitude = altitude;
        }
        #endregion Constructors
    }
}

